package cn.lcsjsxy.yxz.day.Set;

import java.util.ArrayList;

//ArrayList基本操作
public class ArrayListOperation {

    public static void main(String[] args) {

        /*
        List:列表,清单
        Array:数组,阵列


        */

        //创建集合对象
        ArrayList list = new ArrayList(3);  //容量
        //1.不需要传进构造参数，直核new就可以，底层数组为空数组
        //2.构造参数需要传进一个int类型的值、用于设定底层数组的长度
        //3.构造参数需要传递一个Collection集合类型的值，用于将其他集合中的数据放置在当前集合中

        //增加数据
        list.add("123");
        list.add("456");
        list.add("789");
        list.add("147");
        //add方法可以增加数据，只要将数据作为参数传递到add方法即可
        // 添加数据时,如果集合中没有任何的数据，那么底层会创建长度为10的数组

        //访问集合中的数据
        System.out.println(list.size());
        //获取指定位置 (索引)
        System.out.println(list.get(1));
        //遍历
        for (int i = 0; i < list.size(); i++){
            System.out.println("集合中的数据: " + list.get(i));
        }
        System.out.println("~~~我是分割线~~~我是分割线~~~我是分割线~~~我是分割线~~~我是分割线~~~我是分割线~~~我是分割线~~~我是分割线~~~我是分割线~~~");
        //如果循环遍历集合数据时，不关心数据的位置，那么可以采用特殊的for循环
        //格式: for (循环对象:集合)
        for (Object obj : list){
            System.out.println("集合中的数据: " + obj);
        }

        //修改数据  //var
        Object object = list.set(1, "852");
        System.out.println("修改前的值: " + object);
        //将指定位置的数据进行修改,set方法需要传递2个参数，第一个参数表示数据的位置，第二个参数修改的值。
        //方法会返回结果，这个结果就是更新前的值

        //删除数据
        Object removed = list.remove(1);
        System.out.println("删除的值: " + removed);


        //打印集合对象
        System.out.println(list);

        System.out.println("执行完毕");

    }

}
